import store from '@/store'

function checkPermission(el, binding) {
	const { value } = binding
	const roles = store.getters && store.getters.elePermissions

	if (value && value instanceof Array) {
		if (value.length > 0) {
			const permissionRoles = value

			const hasPermission = roles.some(role => {
				return permissionRoles.includes(role)
			})
			if (!hasPermission) {
				if (el.parentNode) {
					el.parentNode && el.parentNode.removeChild(el)
				} else {
					el.style.display = 'none'
				}
			}
		}
	} else {
		throw new Error(`need roles! Like v-permissionKey="['admin','editor']"`)
	}
}

export default {
	inserted(el, binding) {
		checkPermission(el, binding)
	},
	update(el, binding) {
		checkPermission(el, binding)
	}
}
